package com.shrct.businessprocess.purchase;

import com.shrct.businessprocess.project.RCProjectMoney;
import com.shrct.businessprocess.purchase.RCBasePurchaseOrder;
import com.shrct.businessprocess.purchase.RCBudgetContract;
import com.shrct.businessprocess.purchase.RCProductDeliver;
import com.shrct.businessprocess.purchase.RCPurchaseOrderCommissionPayProcess;
import com.shrct.businessprocess.purchase.RCPurchaseOrderPayProcess;
import com.shrct.businessprocess.purchase.RCPurchaseOrderProcess;
import edu.fudan.mylang.pf.IBaseService;
import java.util.Date;
import org.eclipse.xtext.xbase.lib.Procedures.Procedure1;

public interface RCPurchaseService extends IBaseService {
  public abstract RCPurchaseOrderProcess startPurchaseOrderProcess(final RCBasePurchaseOrder purchaseOrder);
  
  public abstract RCPurchaseOrderPayProcess startPurchaseOrderPayProcess(final RCBasePurchaseOrder purchaseOrder, final RCProjectMoney amount, final String comment);
  
  public abstract RCPurchaseOrderCommissionPayProcess startPurchaseOrderCommissionPayProcess(final RCBasePurchaseOrder purchaseOrder, final RCProjectMoney amount, final Double taxRate, final String comment);
  
  public abstract RCProductDeliver createDeliver(final String location, final Date deliverDate, final RCBudgetContract contract, final Procedure1<? super RCProductDeliver> init);
}
